using System;
using Sinacor.Servico.Bovespa.Ordens.BusinessEntity;
using Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Response;
using System.ComponentModel;
using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
	public class TranslateExcluirOrdemDigitacao
	{
        public BusinessEntity.Parameter.ExcluirOrdemDigitacao ToEntity(DataContract.Request.ExcluirOrdemDigitacao request)
        {
            BusinessEntity.Parameter.ExcluirOrdemDigitacao result = new Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.ExcluirOrdemDigitacao();

            result.DataOrdem = request.DataOrdem;
            result.NumeroOrdem = request.NumeroOrdem;
            result.NumeroOrdemSequenciaDistribuicao = request.NumeroOrdemSequenciaDistribuicao;
            result.NumeroOrdemSubSequencia = request.NumeroOrdemSubSequencia;
            result.TipoOrdemDistribuicao = (BusinessEntity.Enum.TipoOrdemDistribuicao)new System.ComponentModel.EnumConverter(request.TipoOrdemDistribuicao.GetType()).ConvertFrom(request.TipoOrdemDistribuicao.ToString());
            result.TipoDistribuicao = (BusinessEntity.Enum.TipoDistribuicao?)new System.ComponentModel.EnumConverter(request.TipoDistribuicao.GetType()).ConvertFrom(request.TipoDistribuicao.ToString()); 
            result.DataMovimento = request.DataMovimento;
            return result;
        }

        public List<BusinessEntity.Parameter.ExcluirOrdemDigitacao> ToEntity(List<DataContract.Request.ExcluirOrdemDigitacao> request)
        {
            List<BusinessEntity.Parameter.ExcluirOrdemDigitacao> result = new List<BusinessEntity.Parameter.ExcluirOrdemDigitacao>();

            foreach (DataContract.Request.ExcluirOrdemDigitacao item in request)
            {
                result.Add(this.ToEntity(item));
            }

            return result;
        }
	}
}

